package com.itheima.mobilesafe69.activity;

import com.itheima.mobilesafe69.R;
import com.itheima.mobilesafe69.utils.ConstantValue;
import com.itheima.mobilesafe69.utils.PrefUtils;
import com.itheima.mobilesafe69.utils.ToastUtil;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;

public abstract class BaseSetupActivity extends Activity {
	private GestureDetector gestureDetector;


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		//3,创建手势识别器的对象
		gestureDetector = new GestureDetector(this,new GestureDetector.SimpleOnGestureListener(){
			//4,重写手势识别器中,包含按下点和抬起点在移动过程中的方法
			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {
				//e1	起始点
				//e2	抬起点
				if(e1.getRawX()-e2.getRawX()>100){
					//下一页,由右向左滑动
					//如果在第一个设置界面中由右向左滑动,跳转到第二个界面
					//如果在第二个设置界面中由右向左滑动,跳转到第三个界面
					//如果在第三个设置界面中由右向左滑动,跳转到第四个界面
					//如果在第四个设置界面中由右向左滑动,跳转到第设置完成个界面
					showNextPage();
				}
				
				if(e2.getRawX()-e1.getRawX()>100){
					//上一页,由左向右滑动
					
					//如果在第一个设置界面中由左向右滑动
					//如果在第二个设置界面中由左向右滑动,跳转到第1个界面
					//如果在第三个设置界面中由左向右滑动,跳转到第2个界面
					//如果在第四个设置界面中由左向右滑动,跳转到第3个界面
					
					showPrePage();
				}
				return super.onFling(e1, e2, velocityX, velocityY);
			}
		});
	}
	
	//抽象方法,定义跳转到下一页的方法
	public abstract void showNextPage();
	//抽象方法,定义跳转到上一页的抽象方法
	public abstract void showPrePage();
	
	//1,监听当前activity上的触摸事件(按下(1次),滑动(多次),抬起(1次))
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		//2,通过手势识别器去识别不同的事件类型,做逻辑
		gestureDetector.onTouchEvent(event);//将activity中的手机移动操作,交由手势识别器处理
		return super.onTouchEvent(event);
	}
	
	//统一处理每一个界面中上一页,下一页的按钮
	public void nextPage(View view){
		//将跳转到下一的代码逻辑,交由子类处理
		showNextPage();
	}
	
	//统一处理每一个界面中上一页,下一页的按钮
	public void prePage(View view){
		//将跳转到上一页的代码逻辑,交由子类处理
		showPrePage();
	}
}
